package com.atguigu.day1;

/**
 * @author mqx
 * @date 2021-4-2 10:38:41
 *
 * 函数式接口
 *      添加注解有约束 @FunctionalInterface
 *      jdk8引入接口可以有默认实现方法（default修饰），静态方法（static修饰），并且这两种可以有多个
 *      而其他的方法只能有一个
 */
@FunctionalInterface
interface Foo{
    //  打招呼！
    void sayHello();


//    void sayHello2();

//    int add(int x,int y);

    default int add(int x,int y){
        return x+y;
    }

    static int div (int x, int y){
        return x/y;
    }

    default int sub(int x,int y){
        return x-y;
    }

    static int mul (int x, int y){
        return x*y;
    }

}

class T1 implements Foo{

    @Override
    public void sayHello() {

    }
}
public class LambdaDemo02 {

    public static void main(String[] args) {
        //  这是多态么？ 最好不要这么理解！
        Foo foo = ()->{
            System.out.println("hello ,word");
        };
        foo.sayHello();


        //  调用接口中的add();
        System.out.println(foo.add(4, 8));

        //  调用div();
        System.out.println(Foo.div(6, 2));

    }

}
